// pages/demo3/demo3.js
const db = wx.cloud.database();
const _ = db.command;
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  // all 要求数组种包含指定元素
  async allFn() {
    let res = await db.collection("datalist").where({
      tags: _.all(["公司"])
    }).get();
    console.log(res)
  },
  // elemMatch 数组对象 必须满足一个条件
  async elemMatchFn() {
    let res = await db.collection("datalist").where({
      arrObj: _.elemMatch({
        age: _.lt(6),
        sex: "男"
      })
    }).get();
    console.log(res)
  },
  // size 数组满足长度
  async sizeFn() {
    let res = await db.collection("datalist").where({
      tags: _.size(2)
    }).get();
    console.log(res)
  },
  // 更新
  async updateFn() {
    // let res = await db.collection("datalist").where({
    //   age:_.lt(13)
    // }).update({
    //   data:{
    //     age: 19
    //   }
    // })8df0e92f66b1e64405ce48947a488bfa
    let res = await db.collection("datalist").doc("8df0e92f66b1e64405ce48947a488bfa").update({
      data: {
        // age: 19, // 修改为 19
        // tags: _.set(["医改"]), // 替换赋值
        // cuowu: _.remove(), // 删除
        // // num:_.inc(2), // 递增 递减
        // num:_.mul(2), // 递乘 
        // num: _.min(10), // 当num 值 大于 10 的时候 更新为 10 
        // num: _.max(10), // 当num 值 小于 10 的时候 更新为 10 
        num: _.rename("newName")
      }
    })
    console.log(res)
  },
  // 数组方法
  async updateArrFn() {
    let res = await db.collection("datalist").doc("8df0e92f66b1e64405ce48947a488bfa").update({
      data: {
        // tags: _.push("新数据"), // 添加单个新数据
        tags: _.push({ // 对象格式 可以进行配置
          each: ["新数据3"], // 这里必须是 数组 不然会被认定为 对象
          position: 0, // 添加位置
          sort: 1, // 添加 并 排序  position 会被打乱
          // slice: -2, // 负数为保留 后两位 数据  正数表示 排序后的 两条数据
        })
      }
    })
    console.log(res)
  },
  async pullFn() {
    let res = await db.collection("datalist").doc("8df0e92f66b1e64405ce48947a488bfa").update({
      data:{
        tags: _.pull("新数据1"), // 把全部是新数据3的 都删除了 只能传入常量
        // places: _.pull({  // 数组对象 写条件的
        //   area: _.gt(100),
        //   age: _.lt(2),
        // }),
        
      }
    });
    console.log(res)
  },
  async pullAllFn() {
    let res = await db.collection("datalist").doc("8df0e92f66b1e64405ce48947a488bfa").update({
      data:{
        tags: _.pullAll(["新数据1","新数据2"]), // 把全部是新数据3的 都删除了 只能传入常量
      }
    });
    console.log(res)
  },
  async addToSetFn() {
    let res = await db.collection("datalist").doc("8df0e92f66b1e64405ce48947a488bfa").update({
      data:{
        // tags: _.addToSet("新数据3"), //添加一个 没有就添加 
        tags:_.addToSet({
          $each:["3","4"]
        })
      }
    });
    console.log(res)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})